package com.xgk.boot.module.core.logistics.inter;


import com.xgk.boot.module.core.dal.dto.TruckOrderDto;
import com.xgk.boot.module.core.logistics.service.dto.RespOrderDto;
import com.xgk.boot.module.core.logistics.service.dto.RespRateDto;

import java.io.IOException;

//运输服务接口
public interface ShippingService {

    /**
     * 获取运输服务的名称
     */
    String getShippingName();

    /**
     * 获取运输服务的代码
     */
    String getShippingCode();



    /**
     * 检查订单地址是否支持配送     *
     */
    Object checkOrderAddress(TruckOrderDto orderInfo);

    /**
     * 订单地址校验
     */
    Object validateOrderAddress(TruckOrderDto orderInfo);

    /**
     * 获取订单报价
     */
    RespRateDto getOrderQuotation(TruckOrderDto orderInfo) throws IOException;

    /**
     * 订单预报
     */
    Object preAdviceOrder(TruckOrderDto orderInfo);

    /**
     * 创建订单
     */
    RespOrderDto createOrder(TruckOrderDto orderInfo) throws IOException;

    /**
     * 取消订单
     */
    Object cancelOrder(TruckOrderDto orderInfo);

    /**
     * 获取订单状态
     */
    Object getOrderStatus(TruckOrderDto orderInfo);

    /**
     * 获取面单
     */
    Object getOrderLabel(TruckOrderDto orderInfo);

    /**
     * 获取订单提单
     */
    RespOrderDto getOrderBol(TruckOrderDto orderInfo) throws IOException;

    /**
     * 获取订单跟踪信息
     */
    RespOrderDto getOrderTracking(TruckOrderDto orderInfo)  throws IOException;

    /**
     * 获取订单详情
     */
    RespOrderDto getOrderDetail(TruckOrderDto orderInfo) throws IOException;
}
